package com.java.common.ustils;

import org.apache.commons.collections4.MapUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @author wangning
 * @create 2021-08-10 10:27
 */
public class TestMapUtils01 {
	public static void main(String[] args) {
		Map<String, Object> map = new HashMap<>();
		map.put("a", "a");
		map.put("", "");
		map.put(null, null);
		System.out.println("MapUtils.getString(map, \"\") = " + MapUtils.getString(map, ""));
		System.out.println("MapUtils.getString(map, \"b\") = " + MapUtils.getString(map, "b"));//null
		System.out.println("map.get(\"b\") = " + map.get("b"));
		//使用工具类不需要强转，不过强转的时候类型必须匹配，否则会出现类型转换异常
		String a = MapUtils.getString(map, "a");
		String aa = (String) map.get("a");
		String bb = (String) map.get("b");

//		String b = map.get("b").toString();//这种方式会出现空指针异常，当map.get("b")为null时，使用toString方法就会出错
		Name name = new Name();
//		String name1 = (String) name;
		String string = name.toString();
		/*toString方法是把一切对象都转换成String类，但是最终的结果有可能不是我们想要的内容，但是能编译通过；上面的程序Object类和
		自己建立的Name都能toString编译通过。
		而强转(String)不一定，必须满足继承关系。String类是Object类的子类，通过编译。但是String类和Name类没有继承关系，因此编译不通过。
		*/
	}
}
